Skip to main content

01 基于imap与smtp的去中心化数据通讯和缓存的设想 — 普通人去中心化的一小步

应用场景: 小群体免部署中心服务器的通讯解决方案。

如何让普通人也拥有软件主权?
普通人的一个手机上有几十个软件客户端,但普通人只有该软件的使用权,而没该软件的主权。 而通讯软件的主权就是数据,而谁拥有了数据的主权,谁才是才是该软件的主人。很明显,通讯软件的使用者不是软件的主人,只是有权使用而已。而通讯数据的重要性在于,这些数据采集了使用者的很多隐私情报,这样一来,掌握数据的人就很可能更自由,而被掌握数据的人,就很可能更被动。这就现实。而改变的方式就在于有没有其它的“选择”。就是通讯软件既然我没有主权,自己的数据被他人掌握,那么我有没有其它的选择,即可以使用通讯软件又可以掌控自己的数据?答案是: 不行,准确来说是,现在不行。 因为要花钱,要花时间,要技术,还要专门的人在维护。所以这就不是普通人能有的条件。 那么,能不能实现,简单来说就是,我就要一通讯软件,我就要能用的,并且自己的隐私数据不能被他人给知道了,不想花钱,不想懂技术,更不想维护。能不能实现? 也许可以! 通讯软件架构本质上就是:B + S架构, 而服务端起到的就是协调各个客户端的通讯这一作用,在免费的各大邮件中都有imap协议,而imap支持自定义目录来存放没有发送出去的邮件,这样的邮件可以写上用户想写上的信息,也就是说免费的邮件服务的imap的个人目录功能,其实可以把它当成一个用户的用来存入数据的中心,而另一个客户端读取这些数据时,通讯就完成了。 所以可以基于imapesmtp就能能够实现一个客户端发送数据,另一个客端读取数据。这很明显不就是邮件吗?是的,就邮件,但更自由。 
 想像一个场景,有一个像QQ的软件,一打开,就要求用户输入,邮件账号和密码作为中心服务,输入后,连接上了免费的邮件服务器,然后自己给自己起个昵称,然后把该软件分享给自己的小伙伴,也是输入同一个邮件账号,再自己起个昵称,你们就可以相互交流了。而所有的数据都只有一个邮件账号内不同的设备流转,整个过程,使用都不用关心服务的维护,技术和金钱的问题,一个客户端就能搞定。甚至到跨账号通讯,其本质就是如果发送的数据超出同一个账号,侧远程发送邮件到别的目标邮箱中(不过免费邮件有数量的限制, 要注意)。

另一个场景是物联网。物联网只要登录该邮箱,监听数据,或上报数据到该邮箱,而使用者用另一个客户端监听数据,就能实现远程操作这些设备了。

说到这2个场景,就是回答了上面的问题: 如何让普通人也拥有软件主权? 这个问题吗?

那么问题的难点在哪里? 在于把imap中的个人目录下的邮件改造成,支持事件订阅和数据缓存以及防止数据的脏读和幻读。
而另一个问题在于要确定imap长连接协议时,能不能监听数据的变动,这能直接响应通讯的延迟。
关于数据的“脏读”和“幻读”可以采用平行读写,就是每一个设备自己的文件(邮件),这个设备想说什么就在这个文件写什么,只有它有权能写入,其它设备只能读不能写,这样一个在多个设备在同一个邮件账号进行数据通讯时,就不会出现读写冲突。这样的问题。
所以,只要把该自定义的目录的邮件抽象出来成为事件订阅中间件和数据缓存这2个功能,那么就相当于真的有这2个功能,直接白票。

而基于这2个功能,能做的事,就多了,尽管底层就是在收发邮件。

那么,假设,这样功能能实现,而且通讯质量真的可以,那么,那时什么是什么场面?那时会是“软件主权”觉醒的场面。因这个白票方案顺利的话,能向人证明一点,那就是“软件主权”这个选择是可行的。跟平时安装软件一样简单,但数据是属于自己的。到那时,邮件服务商会禁用这种白票行为,这个种方式不再可行。但是觉醒就是觉醒了,那时人们会认为距离”软件主权“就是一个自己搞个”服务器“的事,而搞个服务器的事,就只是花点钱,不用其它的关心,那么假如都是按我所想的那想进行,那么下一步就是。。。